19 research outputs found

    Automated Object Layout Optimization in a Portable Microkernel

    Get PDF

    Towards Fast and Portable Microkernels

    Get PDF

    Managing Code Complexity in a Portable Microkernel

    No full text
    Increasing code complexity can become a serious issue even in a software project as small as a microkernel. This paper reports on how we address this problem in the L4Ka::Pistachio microkernel. We define multiple configuration dimensions and assign code fragments to the appropriate dimensions. The kernel build system combines code fragments for the specific configuration. While this approach avoids the run-time costs of a full-blown object-oriented design, it does not avoid code duplication. To address the code duplication problem, we model the code selection with class hierarchies using multiple inheritance and polymorphism. However, the run-time overhead of virtual functions results in a serious (2x) performance hit for the time-critical kernel functionality. To address this latter problem, we apply class flattening to completely eliminate the overhead of virtual function calls. Our evaluation shows that a kernel with flattened class hierarchies performs as fast as one without class hierarchies. Thus, advanced object-oriented programming techniques need no longer be avoided in performance-focused microkernels

    Automated Object Layout Optimization in a Portable Microkernel

    No full text
    Abstract — In a portable microkernel, the increasing diversity of target configurations can lead to software complexity problems. Insufficiencies of current kernel programming techniques manifest in excessive preprocessor use for code selection, in code duplication, and in suboptimal performance. Object-oriented programming can solve the portability problems. However, the language implementation of inheritance often enforces a memory layout of objects that is governed by inheritance relations, not by access patterns, resulting in suboptimal cache usage on the kernel’s critical path. In this paper we present an automated approach to eliminating inheritance-induced overheads in selected performance-critical data structures. We combine class flattening and profile-guided data member reordering and heavily rely on microkernel characteristics. Evaluation in the L4 microkernel indicates that we can use fine-grained class hierarchies in the kernel at no cost and still optimize for the target system, allowing for portable yet efficient microkernels. I

    The Muencheberg Soil Quality Rating (SQR)

    Get PDF
    The Muencheberg Soil Quality Rating (M-SQR) is a simple and fast semi-quantitative method, which can be used by farmers and advisors. This field scoring method is used to analyse soil properties that limit crop yields and crop productivity potentials. Potential applications of the method are soil resource planning, guiding land purchase, and assessment of sustainability and environmental impacts of land use. Ratings of soil quality are made during common soil survey mainly by applying visual methods of soil quality. Only a minimum of equipment is required for the field assessment. A field manual provides rating tables based on response curves and thresholds for basic indicators and different hazard indicators (such as risk of drought). Finally, overall soil quality rating scores ranging from 0 (worst) to 100 (best) characterise crop yield potentials. The current approach is valid for grassland and cropland. The M-SQR matches with other dynamic soil quality assessments as VSA. This manual is not valid for some extremely particular soil and cropping conditions, as paddy rice systems and hazards as frost, fire and wind
    corecore